<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <title>article | 追梦的少年丶</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="压力测试简单介绍 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下，才能真正体现出软件、硬件等各种设置不当所暴露出的问题今日主题      ab测试ab是apachebench命令的缩写。 ab的原理：ab命令会创建多个并发访问线程，模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的，因此，它既可以用来测试apache的负载压力，也可以测试">
<meta name="keywords">
<meta property="og:type" content="article">
<meta property="og:title" content="article">
<meta property="og:url" content="http://yoursite.com/2017/04/06/article/index.html">
<meta property="og:site_name" content="追梦的少年丶">
<meta property="og:description" content="压力测试简单介绍 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下，才能真正体现出软件、硬件等各种设置不当所暴露出的问题今日主题      ab测试ab是apachebench命令的缩写。 ab的原理：ab命令会创建多个并发访问线程，模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的，因此，它既可以用来测试apache的负载压力，也可以测试">
<meta property="og:updated_time" content="2017-04-06T02:22:41.323Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="article">
<meta name="twitter:description" content="压力测试简单介绍 网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下，才能真正体现出软件、硬件等各种设置不当所暴露出的问题今日主题      ab测试ab是apachebench命令的缩写。 ab的原理：ab命令会创建多个并发访问线程，模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的，因此，它既可以用来测试apache的负载压力，也可以测试">
  
    <link rel="alternate" href="/atom.xml" title="追梦的少年丶" type="application/atom+xml">
  
  
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" integrity="sha384-XdYbMnZ/QjLh6iI4ogqCTaIjrFk87ip+ekIjefZch0Y+PvJ8CDYtEs1ipDmPorQ+" crossorigin="anonymous">

  <link rel="stylesheet" href="/css/styles.css">
  

</head>

<body>
  <nav class="navbar navbar-inverse">
  <div class="container">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#main-menu-navbar" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="main-menu-navbar">
      <ul class="nav navbar-nav">
        
          <li><a class=""
                 href="/index.html">Home</a></li>
        
          <li><a class=""
                 href="/archives/">Archives</a></li>
        
      </ul>

      <!--
      <ul class="nav navbar-nav navbar-right">
        
          <li><a href="/atom.xml" title="RSS Feed"><i class="fa fa-rss"></i></a></li>
        
      </ul>
      -->
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

  <div class="container">
    <div class="blog-header">
  <h1 class="blog-title">追梦的少年丶</h1>
  
</div>

    <div class="row">
        <div class="col-sm-8 blog-main">
          <article id="post-article" class="article article-type-post" itemscope itemprop="blogPost">

  <header class="article-header">
    
  
    <h1 class="article-title" itemprop="name">
      article
    </h1>
  


  </header>

  <div class="article-meta">
    <div class="article-datetime">
  <a href="/2017/04/06/article/" class="article-date"><time datetime="2017-04-06T02:21:07.000Z" itemprop="datePublished">2017-04-06</time></a>
</div>

    
    

  </div>
  <div class="article-inner">

    <div class="article-entry" itemprop="articleBody">
      
        <h1 id="压力测试"><a href="#压力测试" class="headerlink" title="压力测试"></a><strong>压力测试</strong></h1><p>简单介绍</p>
<h3 id="网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下，才能真正体现出软件、硬件等各种设置不当所暴露出的问题"><a href="#网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下，才能真正体现出软件、硬件等各种设置不当所暴露出的问题" class="headerlink" title="网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下，才能真正体现出软件、硬件等各种设置不当所暴露出的问题"></a><strong>网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下，才能真正体现出软件、硬件等各种设置不当所暴露出的问题</strong></h3><h2 id="今日主题-ab测试"><a href="#今日主题-ab测试" class="headerlink" title="今日主题      ab测试"></a>今日主题      ab测试</h2><p>ab是apachebench命令的缩写。</p>
<h4 id="ab的原理："><a href="#ab的原理：" class="headerlink" title="ab的原理："></a>ab的原理：</h4><p>ab命令会创建多个并发访问线程，模拟多个访问者同时对某一URL地址进行访问。它的测试目标是基于URL的，因此，它既可以用来测试apache的负载压力，也可以测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力。</p>
<p>ab命令对发出负载的计算机要求很低，它既不会占用很高CPU，也不会占用很多内存。但却会给目标服务器造成巨大的负载，其原理类似CC攻击。自己测试使用也需要注意，否则一次上太多的负载。可能造成目标服务器资源耗完，严重时甚至导致死机</p>
<h3 id="主要名词"><a href="#主要名词" class="headerlink" title="主要名词"></a>主要名词</h3><h3 id="1-吞吐率（Requests-per-second）"><a href="#1-吞吐率（Requests-per-second）" class="headerlink" title="1.吞吐率（Requests per second）"></a>1.吞吐率（Requests per second）</h3><p>概念：服务器并发处理能力的量化描述，单位是reqs/s，指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数，称之为最大吞吐率。</p>
<h4 id="计算公式：总请求数-处理完成这些请求数所花费的时间，即"><a href="#计算公式：总请求数-处理完成这些请求数所花费的时间，即" class="headerlink" title="计算公式：总请求数 / 处理完成这些请求数所花费的时间，即"></a>计算公式：总请求数 / 处理完成这些请求数所花费的时间，即</h4><p>Request per second = Complete requests / Time taken for tests</p>
<h3 id="2-并发连接数（The-number-of-concurrent-connections）"><a href="#2-并发连接数（The-number-of-concurrent-connections）" class="headerlink" title="2.并发连接数（The number of concurrent connections）"></a>2.并发连接数（The number of concurrent connections）</h3><p>概念：某个时刻服务器所接受的请求数目，简单的讲，就是一个会话。</p>
<h3 id="3-并发用户数（The-number-of-concurrent-users，Concurrency-Level）"><a href="#3-并发用户数（The-number-of-concurrent-users，Concurrency-Level）" class="headerlink" title="3.并发用户数（The number of concurrent users，Concurrency Level）"></a>3.并发用户数（The number of concurrent users，Concurrency Level）</h3><p>概念：要注意区分这个概念和并发连接数之间的区别，一个用户可能同时会产生多个会话，也即连接数。</p>
<h3 id="4-用户平均请求等待时间（Time-per-request）"><a href="#4-用户平均请求等待时间（Time-per-request）" class="headerlink" title="4.用户平均请求等待时间（Time per request）"></a>4.用户平均请求等待时间（Time per request）</h3><h4 id="计算公式：处理完成所有请求数所花费的时间-（总请求数-并发用户数），即"><a href="#计算公式：处理完成所有请求数所花费的时间-（总请求数-并发用户数），即" class="headerlink" title="计算公式：处理完成所有请求数所花费的时间/ （总请求数 / 并发用户数），即"></a>计算公式：处理完成所有请求数所花费的时间/ （总请求数 / 并发用户数），即</h4><p>Time per request = Time taken for tests /（ Complete requests / Concurrency Level）</p>
<h3 id="5-服务器平均请求等待时间（Time-per-request-across-all-concurrent-requests）"><a href="#5-服务器平均请求等待时间（Time-per-request-across-all-concurrent-requests）" class="headerlink" title="5.服务器平均请求等待时间（Time per request: across all concurrent requests）"></a>5.服务器平均请求等待时间（Time per request: across all concurrent requests）</h3><h4 id="计算公式：处理完成所有请求数所花费的时间-总请求数，即"><a href="#计算公式：处理完成所有请求数所花费的时间-总请求数，即" class="headerlink" title="计算公式：处理完成所有请求数所花费的时间 / 总请求数，即"></a>计算公式：处理完成所有请求数所花费的时间 / 总请求数，即</h4><p>Time taken for / testsComplete requests<br>可以看到，它是吞吐率的倒数。<br>同时，它也=用户平均请求等待时间/并发用户数，即<br>Time per request / Concurrency Level</p>
<p>开始行动</p>
<p>下面是我的测试案例：</p>
<p>目标：我自己的一台ECS服务器上的a.php文件 </p>
<h4 id="IP-http-47-92-37-69"><a href="#IP-http-47-92-37-69" class="headerlink" title="IP http://47.92.37.69/"></a>IP <a href="http://47.92.37.69/" target="_blank" rel="external">http://47.92.37.69/</a></h4><p>下面进入小黑本</p>
<p>1.进入本地的 apache\bin下</p>
<p>D:\wamp\bin\apache\apache2.4.9\bin&gt;<br>执行下面命令</p>
<p>//测试我的这台ECS 模拟20个人同时访问 共请求600次，将测试结果写入本地的2.html。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">ab.exe -c 20 -n 600 -s 60 -k http://47.92.37.69/a.php</div><div class="line"> &gt;&gt;C:\Users\MLG\Desktop\2.html</div></pre></td></tr></table></figure>
<p> // -c 并发数 &nbsp;&nbsp;&nbsp; -n 请求总次数  &nbsp;&nbsp;&nbsp;-k启用HTTP KeepAlive功能，即在一个HTTP会话中执行多个请求</p>
<h3 id="下面是测试的结果"><a href="#下面是测试的结果" class="headerlink" title="下面是测试的结果"></a>下面是测试的结果</h3><p>This is ApacheBench, Version 2.3 &lt;$Revision: 1554214 $&gt;<br>Copyright 1996 Adam Twiss, Zeus Technology Ltd, <a href="http://www.zeustech.net/" target="_blank" rel="external">http://www.zeustech.net/</a><br>Licensed to The Apache Software Foundation, <a href="http://www.apache.org/" target="_blank" rel="external">http://www.apache.org/</a></p>
<p>Benchmarking 47.92.37.69 (be patient)</p>
<p>Server Software:        nginx/1.11.10</p>
<p>Server Hostname:        47.92.37.69</p>
<p>Server Port:            80</p>
<p>Document Path:          /a.php</p>
<p>Document Length:        78266 bytes</p>
<p>Concurrency Level:      20</p>
<h3 id="Time-taken-for-tests-91-483-seconds"><a href="#Time-taken-for-tests-91-483-seconds" class="headerlink" title="Time taken for tests:   91.483 seconds"></a>Time taken for tests:   91.483 seconds</h3><p>整个测试持续的时间</p>
<h3 id="Complete-requests-600"><a href="#Complete-requests-600" class="headerlink" title="Complete requests:      600"></a>Complete requests:      600</h3><p>请求总数量</p>
<h3 id="Failed-requests-61"><a href="#Failed-requests-61" class="headerlink" title="Failed requests:        61"></a>Failed requests:        61</h3><p>失败的请求数量</p>
<p>Keep-Alive requests:    0</p>
<p>Total transferred:      47026369 bytes</p>
<p>HTML transferred:       46928569 bytes</p>
<h3 id="Requests-per-second-6-56-sec-mean"><a href="#Requests-per-second-6-56-sec-mean" class="headerlink" title="Requests per second:    6.56 [/sec] (mean)"></a>Requests per second:    6.56 [/sec] (mean)</h3><p>吞吐率</p>
<h3 id="Time-per-request-3049-432-ms-mean"><a href="#Time-per-request-3049-432-ms-mean" class="headerlink" title="Time per request:       3049.432 [ms] (mean)"></a>Time per request:       3049.432 [ms] (mean)</h3><p>用户平均请求等待时间</p>
<h3 id="Time-per-request-152-472-ms-mean-across-all-concurrent-requests"><a href="#Time-per-request-152-472-ms-mean-across-all-concurrent-requests" class="headerlink" title="Time per request:       152.472 [ms] (mean, across all concurrent requests)"></a>Time per request:       152.472 [ms] (mean, across all concurrent requests)</h3><p>服务器平均请求处理时间</p>
<p>Transfer rate:          502.00 [Kbytes/sec] received<br>平均每秒网络上的流量，可以帮助排除是否存在网络流量过大导致响应时间延长的问题</p>
<p>Connection Times (ms)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;min        &nbsp;&nbsp;&nbsp;&nbsp; mean[+/-sd]       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;median    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; max</p>
<p>Connect:      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 30   &nbsp;&nbsp;&nbsp;&nbsp;63    &nbsp;&nbsp;231.3    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;39     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3042</p>
<p>Processing:   &nbsp;&nbsp;&nbsp;217  &nbsp;&nbsp;&nbsp;2183   4412.6   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1160   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;62480</p>
<p>Waiting:       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 163   381.2     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;65    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3193</p>
<p>Total:        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;252   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2245  4415.8   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1233  &nbsp;&nbsp; 62522</p>
<p>Percentage of the requests served within a certain time (ms) </p>
<p>  50%   1233</p>
<p>  66%   1714</p>
<p>  75%   2295</p>
<p>  80%   2704</p>
<p>  90%   4555</p>
<p>  95%   6616</p>
<p>  98%  15079</p>
<p>  99%  16347</p>
<p> 100%  62522 (longest request)</p>
<p>//整个场景中所有请求的响应情况。</p>
<p>在场景中每个请求都有一个响应时间，其中50％的用户响应时间小于1233 毫秒，60％ 的用户响应时间小于1714 毫秒，最大的响应时间小于62522 毫秒</p>

      
    </div>

    
      

    

    <footer class="article-footer">
      <a data-url="http://yoursite.com/2017/04/06/article/" data-id="cj16kw5b80000acp0o2todapx" class="article-share-link">
        <i class="fa fa-share"></i> Share
      </a>
      
      

    </footer>
  </div>
  
    
<ul id="article-nav" class="nav nav-pills nav-justified">
  
  
  <li role="presentation">
    <a href="/2017/04/05/blog/" id="article-nav-newer" class="article-nav-link-wrap">
      <span class="article-nav-link-title">使用hexo+github搭建免费个人博客详细教程</span>
      <i class="fa fa-chevron-right pull-right"></i>
    </a>
  </li>
  
</ul>


  
</article>




        </div>
        <div class="col-sm-3 col-sm-offset-1 blog-sidebar">
          
  <div class="sidebar-module sidebar-module-inset">
  <h4>About</h4>
  <p>Etiam porta <em>sem malesuada magna</em> mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur.</p>

</div>


  


  


  

  
  <div class="sidebar-module">
    <h4>Archives</h4>
    <ul class="sidebar-module-list"><li class="sidebar-module-list-item"><a class="sidebar-module-list-link" href="/archives/2017/04/">四月 2017</a><span class="sidebar-module-list-count">3</span></li></ul>
  </div>



  
  <div class="sidebar-module">
    <h4>Recents</h4>
    <ul class="sidebar-module-list">
      
        <li>
          <a href="/2017/04/06/article/">article</a>
        </li>
      
        <li>
          <a href="/2017/04/05/blog/">使用hexo+github搭建免费个人博客详细教程</a>
        </li>
      
        <li>
          <a href="/2017/04/05/hello-world/">Hello World</a>
        </li>
      
    </ul>
  </div>



        </div>
    </div>
  </div>
  <footer class="blog-footer">
  <div class="container">
    <div id="footer-info" class="inner">
      &copy; 2017 Sam yu<br>
      Powered by <a href="http://hexo.io/" target="_blank">Hexo</a>
    </div>
  </div>
</footer>

  

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" integrity="sha384-8gBf6Y4YYq7Jx97PIqmTwLPin4hxIzQw5aDmUg/DDhul9fFpbbLcLh3nTIIDJKhx" crossorigin="anonymous"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>



<script src="/js/script.js"></script>

</body>
</html>
